A common environment scenario is mixed-mode, wherein differing versions of the same product, or software policy, are supported by various clients and/or remote servers. There are generally two kinds of product revisions: major and minor. A major revision generally results in a new set, or subset, of management interfaces and/or policy structure. A minor revision, in contrast, generally only entails the addition and/or modification of one or more fields and/or parameters of a management interface or policy structure of the software policy. Both major and minor product revisions, however, result in differing versions that are generally incompatible with prior versions, at least in so far as the changes to the product that resulted in the revision.
In many mixed-mode environments there are also, or alternatively, differing client versions, i.e., differing operating systems supported by various clients, and/or differing supported platforms or platform versions that require alternative software product versions.
Managing such mixed-mode environments presents unique challenges to computer-based system administrators and application developers attempting to query and control various clients simultaneously. For example, in currently known systems clients supporting a smaller major or minor version can not be queried with product versions with greater major and/or minor version values. This is generally because the lower version product hosted on any particular client is typically unable to interpret API (“application programming interface”) calls and/or policy parameters that are unique to the higher version product.
As another example, currently known mixed-mode environment systems do not support the ability to push, or otherwise implement or deploy, software policies with minor version revisions to clients supporting the same major version but differing, smaller, minor versions. This is generally because smaller minor version products are typically unable to interpret policy parameters that are unique to the higher version product.
The inability to implement one new product version in a mixed-mode environment can generate vast logistical and/or managerial challenges for system administrators who must keep track of which clients can, and do, support a particular new version software policy and which clients do not. The inability to implement one new product version in a mixed-mode environment can also result in workload, managerial and maintenance concerns for application developers who may be required to develop and maintain various versions of a product that can be used with differing client operating systems and/or differing client platforms.
The inability to implement one new product version in a mixed-mode environment can also result in important system security problems, e.g., when dealing with products, such as, but not limited to, firewall policies, that are designed to address and/or otherwise enforce security policy in a system.
Thus, it would be effective and efficient if a mixed-mode environment accommodated software policies of a greater major version managing clients supporting lesser major versions. It would likewise be effective and efficient if, in a mixed-mode environment, software policies of a greater minor version could be used to manage clients supporting lesser minor versions. Similarly, efficiencies could be gained in situations where software policies of a lesser major version could be used to manage clients maintaining greater major versions, and circumstances in which software policies of a lesser minor version could be used to manage clients supporting greater minor versions.
It would also be beneficial if, in a mixed-mode environment, a software policy could be authored for and enforced on only a specific platform version or versions. Such version targeting will allow, among other things, a system administrator to push, or otherwise implement or deploy, a policy to a specific platform version or versions in order to address unique security issues faced by the respective platform version(s). Version targeting will also allow a system administrator to provide specific application enablement to respective platform version(s).